package com.bjesc_b2c.app.appraiset.http;


import com.bjesc_b2c.app.appraiset.bean.AudiOrderBean;
import com.bjesc_b2c.app.appraiset.bean.CompleteOrderBean;
import com.bjesc_b2c.app.appraiset.bean.CountDataBean;
import com.bjesc_b2c.app.appraiset.bean.DispatchBean;
import com.bjesc_b2c.app.appraiset.bean.FollowInfoBean;
import com.bjesc_b2c.app.appraiset.bean.SaleCounBean;
import com.bjesc_b2c.app.appraiset.bean.StatisticsBean;
import com.bjesc_b2c.app.appraiset.bean.TargetBean;
import com.bjesc_b2c.app.appraiset.bean.TouristsBean;
import com.bjesc_b2c.app.appraiset.bean.TrackBean;
import com.bjesc_b2c.app.appraiset.bean.WaitCheckCarBean;
import com.bjesc_b2c.app.appraiset.bean.WaitTrackBean;

import java.util.List;

import master_bean.AppUpdateBean;
import master_bean.AppraiserBean;
import master_bean.BasicInfoBean;
import master_bean.BigPhotoBean;
import master_bean.CarBigPhotoStatusBean;
import master_bean.CarForBean;
import master_bean.CarSeriesModelBean;
import master_bean.ComprehensiveBean;
import master_bean.CustomerDetailsBean;
import master_bean.DealerBean;
import master_bean.DemandCarBean;
import master_bean.LoginBean;
import master_bean.SelectCarBrandBean;
import master_bean.SinglePhotoUpBean;
import master_bean.ToDayBean;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.POST;
import rx.Observable;
import rxretrofit_base.model.RxHttpUrl;
import rxretrofit_base.model.TokenBean;

/**
 * Created by lenovo on 2017/2/27.
 */

public interface IApiActivityRequest {
    /**
     * 登录
     * @return
     */
    @POST(RxHttpUrl.UserLogin)
    Observable<TokenBean<LoginBean>> login();
    /**
     * 获取版本号
     * @return
     */
    @POST(RxHttpUrl.AppVersion)
    Observable<TokenBean<AppUpdateBean>> appVersion();
    /**
     * 下载app
     * @return
     */
    @GET(RxHttpUrl.AppUrl)
    Call<ResponseBody> loadFile();
    /**
     * 获取车品牌
     * @return
     */
    @POST(RxHttpUrl.CAR_BRAND)
    Observable<TokenBean<List<SelectCarBrandBean>>> getCarBrand();

    /**
     * VIN码排重
     * @return
     */
    @POST(RxHttpUrl.VIN_REPEAT)
    Observable<TokenBean> sortVIN();

    /**
     * 获取首页基本信息
     */
    @POST(RxHttpUrl.GET_BASIC_INFO)
    Observable<TokenBean<BasicInfoBean>> getBasicInfo();

    /**
     * 获取首页基本信息
     */
    @POST(RxHttpUrl.SAVE_BASIC_INFO)
    Observable<TokenBean> saveBasicInfo();

    /**
     * 通过车品牌获取车系
     * @return
     */
    @POST(RxHttpUrl.CAR_SERIES)
    Observable<TokenBean<List<CarSeriesModelBean>>> getCarSeries();

    /**
     * 通过车系获取车型
     * @return
     */
    @POST(RxHttpUrl.CAR_MODEL)
    Observable<TokenBean<List<CarSeriesModelBean>>> getCarModel();

    /**
     * 保存骨架的图片
     * @return
     */
    @POST(RxHttpUrl.SAVE_FRAME)
    Observable<TokenBean> saveFrame();

    /**
     * 获取骨架详情
     * @return
     */
    @POST(RxHttpUrl.GET_BIG_STATUS)
    Observable<TokenBean<List<CarBigPhotoStatusBean>>> getFrameworkStatus();

    /**
     * 获取骨架、外观等详情图片
     * @return
     */
    @POST(RxHttpUrl.GET_SINGLE_PHOTO)
    Observable<TokenBean<SinglePhotoUpBean>> getSinglePhoto();

    /**
     * 保存外观的图片
     * @return
     */
    @POST(RxHttpUrl.SAVE_SURFACE)
    Observable<TokenBean> saveSurface();

    /**
     * 保存内饰的图片
     * @return
     */
    @POST(RxHttpUrl.SVAE_ORNAMENTS)
    Observable<TokenBean> saveOrnaments();

    /**
     * 保存装置的图片
     * @return
     */
    @POST(RxHttpUrl.SAVE_DEVICE)
    Observable<TokenBean> saveDevice();

    /**
     * 获取综合评估
     * @return
     */
    @POST(RxHttpUrl.GET_COMPREHENSIVE)
    Observable<TokenBean<ComprehensiveBean>> getComprehensive();

    /**
     * 保存综合评估
     * @return
     */
    @POST(RxHttpUrl.SAVE_COMPREHENSIVE)
    Observable<TokenBean> saveComprehensive();

    /**
     * 保存车辆合影
     * @return
     */
    @POST(RxHttpUrl.SAVE_CARPHOTO)
    Observable<TokenBean<SinglePhotoUpBean>> saveCarPhoto();

    /**
     * 删除图片
     * @return
     */
    @POST(RxHttpUrl.DELETE_FILE)
    Observable<TokenBean> deleteFile();

    /**
     * 获取大图里描述信息
     * @return
     */
    @POST(RxHttpUrl.GET_BIGPHOTO)
    Observable<TokenBean<BigPhotoBean>> getBigPhoto();

    /**
     * 提交信息
     * @return
     */
    @POST(RxHttpUrl.COMMIT_INFO)
    Observable<TokenBean<SinglePhotoUpBean>> commitInfo();

    /**
     * 新增车源
     * @return
     */
    @POST(RxHttpUrl.ADD_CAR)
    Observable<TokenBean<BasicInfoBean>> addCar();

/**
 * 新增车商
 * @return
 */
    @POST(RxHttpUrl.ADD_DEALER)
    Observable<TokenBean> addDealer();

    /**
     * 获取经销商详情、地址
     * @return
     */
    @POST(RxHttpUrl.DEALER_DETAILS)
    Observable<TokenBean<DealerBean>> getDealerDetails();
    /**
     * 新增车商
     * @return
     */
    @POST(RxHttpUrl.EDIT_DEALER)
    Observable<TokenBean> editDealer();

    /**
     * 经销商车辆详情
     * @return
     */
    @POST(RxHttpUrl.DEALER_INFO)
    Observable<TokenBean<DealerBean>> getDealerInfo();

    /**
     * 获取车商
     * @return
     */
    @POST(RxHttpUrl.GET_DEALER)
    Observable<TokenBean<List<CarForBean>>> getDealer();
    /**
     * 经销商管理
     * @return
     */
    @POST(RxHttpUrl.MANAGE_DEALER)
    Observable<TokenBean<List<CarForBean>>> manageDealer();

    /**
     *根据type 获取车商
     * @return
     */
    @POST(RxHttpUrl.GET_BUSINESS)
    Observable<TokenBean<List<CarForBean>>> getDealerForType();

    /**
     * B2C 提交信息
     * @return
     */
    @POST(RxHttpUrl.EXAMINE_CAR)
    Observable<TokenBean<CarForBean>>putCar();
    /**
     * B2C 下架
     * @return
     */
    @POST(RxHttpUrl.OFF_CAR)
    Observable<TokenBean<CarSeriesModelBean>>offCar();
    /**
     * B2C 上架
     * @return
     */
    @POST(RxHttpUrl.PUBLISH_CAR)
    Observable<TokenBean<CarSeriesModelBean>>publishCar();

    /**
     * 调价
     * @return
     */
    @POST(RxHttpUrl.EDIT_CAR_PRICE)
    Observable<TokenBean<CarSeriesModelBean>>editPrice();

    /**
     * 获取车市
     * @return
     */
    @POST(RxHttpUrl.CAR_MARKET)
    Observable<TokenBean<List<CarForBean>>> getMarket();
    /**
     * 我的车行 车辆操作
     * @return
     */
    @POST(RxHttpUrl.WAIT_CHECK_CAR)
    Observable<TokenBean<WaitCheckCarBean>> getCheckCar();
    /**
     * 巡店待采集——我的车行
     * @return
     */
    @POST(RxHttpUrl.MY_DEALERS)
    Observable<TokenBean<List<CarForBean>>> getMyDealers();
    /**
     * 待跟进线索
     * @return
     */
    @POST(RxHttpUrl.FOLLOW_LIST)
    Observable<TokenBean<WaitTrackBean>>getFollowList();
    /**
     * 远期待跟进线索
     * @return
     */
    @POST(RxHttpUrl.FORWARD_LIST)
    Observable<TokenBean<List<TrackBean>>> getForwardList();
    /**
     * 意向客源-待跟进线索
     * @return
     */
    @POST(RxHttpUrl.INTENT_FOLLOW)
    Observable<TokenBean<WaitTrackBean>> getIntentFollowList();
    /**
     * 意向客源 - 远期待跟进线索
     * @return
     */
    @POST(RxHttpUrl.INTENT_FORWARD)
    Observable<TokenBean<List<TrackBean>>> getIntentForwardList();
    /**
     * 已完成订单
     * @return
     */
    @POST(RxHttpUrl.FINISHED_DISPATCH)
    Observable<TokenBean<List<CompleteOrderBean>>> getCompleteList();
    /**
     * 全部订单
     * @return
     */
    @POST(RxHttpUrl.ALL_DISPATCH)
    Observable<TokenBean<List<CompleteOrderBean>>> getAllDispatchList();

    /**
     * 销售-接单线索
     * @return
     */
    @POST(RxHttpUrl.TRACK_LIST)
    Observable<TokenBean<List<TrackBean>>> getTrackList();

    /**
     * 销售-待审核
     * @return
     */
    @POST(RxHttpUrl.FAIL_EXAMINE_LIST)
    Observable<TokenBean<List<TrackBean>>> getFailExamineList();

    /**
     * 销售-意向客源线索
     * @return
     */
    @POST(RxHttpUrl.INTENTION_TOU)
    Observable<TokenBean<List<TrackBean>>> getIntentionTouList();


    /**
     * 销售-公海列表
     * @return
     */
    @POST(RxHttpUrl.COMMON_LIST)
    Observable<TokenBean<List<TrackBean>>> getCommonList();
    /**
     * 销售-订单公海列表
     * @return
     */
    @POST(RxHttpUrl.DISPATCH_LIST)
    Observable<TokenBean<List<TrackBean>>> getOrderSaesList();

    /**
     * 销售-领取公海客源
     * @return
     */
    @POST(RxHttpUrl.RECEIVE_COMMON)
    Observable<TokenBean> receiveCommon();
    /**
     * 销售-领取订单公海客源
     * @return
     */
    @POST(RxHttpUrl.RECEIVE_DISPATCH)
    Observable<TokenBean> receiveDispatch();

    /**
     * 获取客户基本信息
     * @return
     */
    @POST(RxHttpUrl.TOURISTS_INFO)
    Observable<TokenBean<TouristsBean>> getCusinfo();

    /**
     * 修改客户基本信息
     * @return
     */
    @POST(RxHttpUrl.TOURISTS_INFO)
    Observable<TokenBean> modifyCusinfo();
    /**
     * 获取需求车源、相似车源
     * @return
     */
    @POST(RxHttpUrl.DEMAND_CAR)
    Observable<TokenBean<List<DemandCarBean>>> getDemandCars();

    /**
     * 获取客户详细信息接口
     * @return
     */
    @POST(RxHttpUrl.TOURISTS_DETAIL)
    Observable<TokenBean<CustomerDetailsBean>>getCusDetails();
    /**
     * 获取相似车源
     * @return
     */
    @POST(RxHttpUrl.LIKE_DEALERS)
    Observable<TokenBean<List<DemandCarBean>>>getLikeCars();
    /**
     * 添加需求车源
     * @return
     */
    @POST(RxHttpUrl.ADD_DEMANDCAR)
    Observable<TokenBean>addDemandCar();
    /**
     * 添加需求车源
     * @return
     */
    @POST(RxHttpUrl.ADD_FOLLOW)
    Observable<TokenBean>addFollow();

    /** 获取评估师列表
     * @return
     */
    @POST(RxHttpUrl.GET_ALL_APPRAISER)
    Observable<TokenBean<List<AppraiserBean>>>getAllAppraiser();
    /**车行 分配维护人
     * @return
     */
    @POST(RxHttpUrl.HANDLE_DEALER)
    Observable<TokenBean>handleDealer();
    /** 订单 分配维护人
     * @return
     */
    @POST(RxHttpUrl.ASSIGN_DISPATCH)
    Observable<TokenBean>assignDispatch();

    /** 转单
     * @return
     */
    @POST(RxHttpUrl.MOVE_ORDERSTRACK)
    Observable<TokenBean>moveOrdersTrack();
    /** 退订
     * @return
     */
    @POST(RxHttpUrl.RETURN_ORDER)
    Observable<TokenBean>returnOrder();
    /** 修改订单操作
     * @return
     */
    @POST(RxHttpUrl.SHUT_DOWN_DISPATCH)
    Observable<TokenBean>shutDownDispatch();
    /** 待审核订单详情
     * @return
     */
    @POST(RxHttpUrl.DETAIL_INFO)
    Observable<TokenBean<AudiOrderBean>>getDisfailInfo();

    /**
     * 确认接单
     * @return
     */
    @POST(RxHttpUrl.SURE_ORDER)
    Observable<TokenBean>sureOrder();
    /**
     * 审核接口
     * @return
     */
    @POST(RxHttpUrl.FAIL_EXAMINE)
    Observable<TokenBean>examineDispatch();

    /**
     * 全部车源
     * @return
     */
    @POST(RxHttpUrl.ALL_CAR_LIST)
    Observable<TokenBean<List<ToDayBean>>> getAllCar();

    /**
     * 创建订单
     * @return
     */
    @POST(RxHttpUrl.CREATE_DISPATCH)
    Observable<TokenBean> createOrder();

    /**
     * 打回历史
     * @return
     */
    @POST(RxHttpUrl.REPULSE_CAR)
    Observable<TokenBean<List<ToDayBean>>> repulseHistory();


    /**
     * 待检车源
     * @return
     */
    @POST(RxHttpUrl.MY_WAIT_CHECK)
    Observable<TokenBean<List<ToDayBean>>> waitCheckCar();
    /**
     * 待检车源
     * @return
     */
    @POST(RxHttpUrl.FOLLOW_INFO)
    Observable<TokenBean<FollowInfoBean>> getFollowInfo();

    /**
     * 盘库完成
     * @return
     */
    @POST(RxHttpUrl.LOOK_INVENTORY)
    Observable<TokenBean> lookInventory();
    /**
     * 车源异常
     * @return
     */
    @POST(RxHttpUrl.UNUSUAL_CAR)
    Observable<TokenBean> carUnusual();
    /**
     * 车源正常
     * @return
     */
    @POST(RxHttpUrl.UNUSUAL_SURE)
    Observable<TokenBean> carUsual();

    /**
     * 销售页图标数量展示
     * @return
     */
    @POST(RxHttpUrl.SALEDATACOUNT)
    Observable<TokenBean<SaleCounBean>> getSaleCount();
    /**
     * 采集页图标数量展示
     * @return
     */
    @POST(RxHttpUrl.COLLECTCOUNT)
    Observable<TokenBean<SaleCounBean>> getCollectCount();

    /**
     * 分享成功统计
     * @return
     */
    @POST(RxHttpUrl.SHARE_SUC)
    Observable<TokenBean> shareCode();

    @POST(RxHttpUrl.MANAGER_VIEW)
    Observable<TokenBean<StatisticsBean>> getManagerData();
    @POST(RxHttpUrl.PERSONAL_VIEW)
    Observable<TokenBean<StatisticsBean>> getPersonalData();
    @POST(RxHttpUrl.SET_GOAL)
    Observable<TokenBean> setGoal();
    /** 数据统计获取目标专员
     * @return
     */
    @POST(RxHttpUrl.CHOICE_GROUP)
    Observable<TokenBean<TargetBean>>getChoiceGroup();
    /** 管理视图查看选择目标
     * @return
     */
    @POST(RxHttpUrl.COUNT_DATA_GOAL)
    Observable<TokenBean<TargetBean>>getGoalList();

    @POST(RxHttpUrl.COUNT_DATA)
    Observable<TokenBean<CountDataBean>> getCountData();

    /**
     * 更改车行
     * @return
     */
    @POST(RxHttpUrl.CHANGE_CAR_DEALER)
    Observable<TokenBean> changeCarDealer();
    /**
     * 带看结束
     * @return
     */
    @POST(RxHttpUrl.LOOK_END)
    Observable<TokenBean> lookEnd();
    /**
     * 开始带看
     * @return
     */
    @POST(RxHttpUrl.LOOK_START)
    Observable<TokenBean>lookStart();
    /**
     * 订单退回
     * @return
     */
    @POST(RxHttpUrl.BACK_DISPATCH)
    Observable<TokenBean>backDispatch();
    /**
     * 丢入公海
     * @return
     */
    @POST(RxHttpUrl.DISCARD_DISPATCH)
    Observable<TokenBean>discardDispatch();
    /**
     * 改约
     * @return
     */
    @POST(RxHttpUrl.CHANGE_APPOINTMENT)
    Observable<TokenBean>changeAppointment();
    /**
     * 战败
     * @return
     */
    @POST(RxHttpUrl.FAIL_DISPATCH)
    Observable<TokenBean>failDispatch();
    /**
     * 自约下次到店时间
     * @return
     */
    @POST(RxHttpUrl.OWNAGREEMENT_TIME)
    Observable<TokenBean>ownTime();
    /**
     * 确认到店时间
     * @return
     */
    @POST(RxHttpUrl.SURE_ARRIVAL)
    Observable<TokenBean>sureArrival();
    /**
     * 获取当前订单预约时间
     * @return
     */
    @POST(RxHttpUrl.GET_DISPATCH_TIME)
    Observable<TokenBean<DispatchBean>>getDispatchTime();
    //测试
    @POST("api/test")
    Observable<TokenBean> saveBasic();
}
